import useLoginStore from '@/pinia-store/userInfoStore';
const useLogin = useLoginStore();
// console.log('useLoginStore  hooks', useLogin.userInfo);
/**
 * 定义Logo
 * @return
 */
export function logo() {
	const res = 'http://www.jingxiang360.com/logo.png';
	return res;
}

/** @description 已登录 */
export function loggedIn() {
	// console.log('判断是否登录', useLogin.userInfo);
	// if (useLogin.userInfo && useLogin.userInfo.uid) return getBack(1) 	// uniCloud.getCurrentUserInfo()
	if (useLogin.userInfo && useLogin.userInfo.uid) return addOpenTab('/pages/index/homepage');
}

/** @description 是否已登录 */
export function isLogin() {
	let isLogin = false;
	if (useLogin.userInfo && useLogin.userInfo.uid) isLogin = true;
	console.log('是否已登录', isLogin);
	return isLogin;
}


/** @description 关闭当前页面，返回上一页面或多级页面
 * @param {any} number
 * @return
 */
export function getBack(number = 1) {
	uni.navigateBack({
		delta: number
	});
}

/** @description 保留当前页面，跳转到应用内的某个页面
 * @param {string} url
 * @return
 */
export function addOpen(url : string) {
	uni.navigateTo({ url });
}
/** @description 关闭当前页面，跳转到应用内的某个页面
 * @param {string} url
 * @return
 */
export function redirectTo(url : string) {
	uni.redirectTo({ url });
}
/** @description 关闭所有页面，打开到应用内的某个页面
 * @param {string} url
 * @return
 */
export function reLaunch(url : string) {
	uni.reLaunch({ url });
}
/** @description 跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面
 * @param {string} url
 * @return
 */
export function addOpenTab(url : string) {
	uni.switchTab({ url });
}
/**
 * @description 提示框
 * @param icon success\error\fail\exception\loading\none  "success" | "loading" | "error" | "none" | "fail" | "exception"
 **/
export function getPopUp(title = '', icon = 'none', duration = 1000, callback ?: Function) {
	uni.showToast({
		title,
		icon,
		duration
	});
	//判断其是否是函数
	if (typeof callback === 'function') {
		let tempTime = setTimeout(() => {
			callback && callback();
			clearTimeout(tempTime);
		}, duration);
	}
}
/**
 * @description 模态框
 * @param title 标题名称 content：内容  callback：回调函数
 **/
export function showModal(title = '提示', content = '', callback : Function) {
	uni.showModal({
		title,
		content,
		cancelColor: '#bbb',
		confirmColor: '#007aff',
		success(res) {
			//判断其是否是函数
			if (typeof callback === 'function') {
				let tempTime = setTimeout(() => {
					callback && callback(res);
					clearTimeout(tempTime);
				}, 0);
			}
		}
	});
}
/** @param 打电话 phoneNumber 为字符串
 * @param {string} phoneNumber
 * @return
 */
export function callUp(phoneNumber : string) {
	// #ifndef H5
	uni.makePhoneCall({
		phoneNumber: phoneNumber
	});
	// #endif
}
/** @param 复制链接 */
export function getCopy(text : string) {
	// 设置剪贴板内容
	uni.setClipboardData({
		data: text, // 剪贴板的内容
		success() {
			getPopUp('复制成功', 'none', 1500);
		}
	});
}
/** @description 值大于99 转换成99+ */
export function displayValue(value : number) : string {
	if (value > 99) {
		return '99+';
	} else {
		return value.toString();
	}
}
/** @description 获取小程序版本号 */
export function getVersion() : Promise<string> {
	return new Promise<string>((resolve, reject) => {
		uni
			.getSystemInfo()
			.then((info) => {
				const version = info.version;
				resolve(version);
			})
			.catch((error) => {
				reject(error);
			});
	});
}
// 给日期补0
function padRepair(num : number) {
	// padStart()两个参数：目标长度和用于填充的字符。它会检查原始字符串的长度，如果长度小于目标长度，则在字符串的左侧填充指定字符，直到达到目标长度为止。
	return num.toString().padStart(2, '0');
}

/**
 * @description 时间戳转换时间
 * @param time：时间戳
 * @param type：分隔符类型
 * @param isHour：是否保存时分秒
 **/
export function timestamp(time : number, type = '-', isHour = true) {
	let date = new Date(time);
	const year = date.getFullYear(); // 年份
	const month = date.getMonth() + 1; // 月份
	const day = date.getDate(); // 日期
	const hour = date.getHours(); // 小时
	const minute = date.getMinutes(); // 分钟
	const second = date.getSeconds(); // 秒数
	// const millisecond = date.getMilliseconds(); // 毫秒数，0-999
	// const weekday = date.getDay(); // 星期几，0-6，0 表示周日，6 表示周六
	let tempTime = '';
	if (isHour) {
		tempTime = `${year}${type}${padRepair(month)}${type}${padRepair(day)} ${padRepair(hour)}:${padRepair(minute)}:${padRepair(second)}`;
	} else {
		tempTime = `${year}${type}${padRepair(month)}${type}${padRepair(day)}`;
	}

	return tempTime;
}

/**
 * @description 点击放大图片
 * @param urls:：Array<String>
 * @param current: current 为当前显示图片的链接/索引值
 **/
export function toImages(tempUrl : Array<string>, current : number | string) {
	uni.previewImage({
		urls: tempUrl as any,
		current,
		longPressActions: {
			itemList: ['发送给朋友', '保存图片', '收藏'],
			success() { },
			fail() { }
		}
	});
}
/**
 * @description 点击放大图片 用于 dcloud ==> uni-file-picker 组件上传的
 * @param urls:：Array<object>
 * @param current: current 为当前显示图片的链接/索引值
 **/
export function toArrObjImages(arrObj : Array<{ url : string }>, current : number | string) {
	console.log('点击放大图片', arrObj, current);
	let tempUrl = arrObj.map((item) => item.url);
	uni.previewImage({
		urls: tempUrl,
		current,
		longPressActions: {
			itemList: ['发送给朋友', '保存图片', '收藏'],
			success() {
				// console.log('选中了第' + (res.tapIndex + 1) + '个按钮,第' + (res.index + 1) + '张图片')
			},
			fail() { }
		}
	});
}

/** @description 设置标题 */
export function setTitle(title : string) {
	uni.setNavigationBarTitle({
		title
	});
}

/** @description 打开隐私协议页面 */
export function handleAction(typeName : string) {
	if (typeName === 'privacy') {
		/** @name 打开隐私协议页面 */
		// #ifdef MP-WEIXIN
		wx.openPrivacyContract({
			success: (res : any) => {
				console.log('打开成功', res);
			}, // 打开成功
			fail: () => { } // 打开失败
		});
		// #endif
	} else if (typeName === 'agreement') {
		/** @name 打开服务协议页面 */
	}
}

/** @description 获取url中的某个字段 */
export function getIdFromUrl(url : string, field : string) {
	if (url.includes('?')) {
		let arr = url.split('?');
		let querys = arr[1];
		let params = querys.split('&');
		for (let i = 0; i < params.length; i++) {
			let vars = params[i];
			let arr2 = vars.split('=');
			if (arr2[0] == field) {
				return arr2[1];
			}
		}
		return '';
	} else {
		return '';
	}
}

/** @description 跳转微信客服聊天界面 */
export function toService(url, corpId) {
	// #ifdef MP-WEIXIN
	try {
		// 打开微信客服，页面产生点击事件
		wx.openCustomerServiceChat({
			extInfo: {
				// url: 'https://work.weixin.qq.com/kfid/kfca2c463e251540118' // 微信客服测试链接
				url // 客服链接
			},
			corpId, // 企业ID
			success(res) {
				console.log(res);
			},
			fail(err) {
				console.log(err);
			}
		});
	} catch (e) {
		//TODO handle the exception
		uni.showToast({
			title: '请更新至微信最新版本',
			duration: 1000,
			icon: 'none'
		});
	}
	// #endif

	// #ifdef MP-ALIPAY || MP-TOUTIAO
	getPopUp('功能开发中', 'none', 1500);
	// #endif

	// #ifndef MP-WEIXIN
	location.href = url;
	// 可以打开plus.runtime.openURL("dianping://send?href=页面路径", function(res) {console.log(res);}, '包名');
	/* plus.runtime.openURL('dianping://send?href='+url, function(res) {
		console.log(res)
	},'h5'); */
	// location.replace("https://work.weixin.qq.com/kfid/kfca2c463e251540118")
	// #endif
}

/** @description 大于1000就显示未999+的公用方法 */
export function formatNumber(value:number) {
	if (value > 1000) {
		return '999+';
	} else {
		return value.toString();
	}
}